Supporting Developers in Porting Software via Combined Textual and Structural Analysis of Software Artifacts

نویسندگان

  • Kostadin Damevski
  • David C. Shepherd
  • Nicholas A. Kraft
  • Lori L. Pollock
چکیده

In the engineering and scientific domains software commonly has a long lifespan, lasting decades instead of years. Due to this lifespan, software often outlives the current generation of hardware, and in turn needs to be modified to execute on newer classes of hardware architectures [1]. Supporting developers in this difficult software maintenance activity is very important in order to improve their productivity, reduce bugs, and prevent architectural erosion [3]. Software engineering researchers have found that developers commonly begin maintenance tasks by first identifying and then comprehending the relevant program units for that task [5]. Program comprehension at the outset of maintenance tasks has been well studied and supported by a number of tools, utilizing static and dynamic information extracted from the code base. Research in the last decade in applying textual analysis approaches to source code, adapted from the fields of natural language processing and information retrieval, has produced notable results and resulted in the proliferation of program comprehension tools based on this type of information, often combined with static or dynamic sources [2]. Textual approaches have now matured to be applicable to the problem of enabling long-lasting high performance scientific and engineering software, a domain where natural language information is usually more challenging to extract than in general purpose software. Based on these opportunities, our position is that the use of textual and structural analyses coupled with platform usage patterns extracted by mining similar open source projects can improve the quality and efficiency of scientific and engineering software maintenance. Our position is based on two key insights: 1) combining structural and textual analyses can reveal information to support scientific and engineering software maintenance; 2) mining software repositories of projects that exist within the same platform can reveal patterns that could aid developers in identifying and comprehending relevant program elements for porting. We envision that research in these directions could yield software comprehension and recommendation tools that could be applied to a code base in order to improve porting to new platforms during maintenance. In the following we discuss each of the two key ideas in turn. Combining structural and textual analyses. Natural language processing of identifiers and comments embedded in source code has become recognized as a necessary tool in aiding developers accomplish certain software engineering tasks, such as feature location [2], software modulariza-tion [4], and automated code summarization [6]. Numerous text analysis algorithms and approaches, including topic modeling, …

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Mapping of McGraw Cycle to RUP Methodology for Secure Software Developing

Designing a secure software is one of the major phases in developing a robust software. The McGraw life cycle, as one of the well-known software security development approaches, implements different touch points as a collection of software security practices. Each touch point includes explicit instructions for applying security in terms of design, coding, measurement, and maintenance of softwar...

متن کامل

The Scent of a Smell: An Extensive Comparison between Textual and Structural Smells

Code smells are symptoms of poor design or implementation choices that have a negative effect on several aspects of software maintenance and evolution, such as program comprehension or changeand fault-proneness. This is why researchers have spent a lot of effort on devising methods that help developers to automatically detect them in source code. Almost all the techniques presented in literatur...

متن کامل

Context Awareness for Effective Software Structure Quality

This paper presents an approach that helps developers to maintain source code identifiers and comments dependable with high-level artifact. This approach calculates and shows the textual similarity source code and related artifacts. The assumption is developers are induced to improve the source code lexicon (terms) used in identifiers or comments. The software development environment provides i...

متن کامل

Webification of Software Development: User Feedback for Developer's Modeling

In this paper we present an approach to leveraging experience from rapidly evolving field of information processing on the Web for software development. We consider a web of software artifacts (components) as an information space. Supporting any task in such environment of interconnected artifacts depends on our knowledge on user preferences and his characteristics. We envision the concept of c...

متن کامل

Supporting Software Development as Collective Creative Knowledge Work

We view software development as a system of evolution consisting of the three elements: (1) artifacts, (2) individual developers, and (3) a community of developers. An individual’s determining what artifacts to contribute and how, with whom to communicate by asking or answering, and which role to play within the community affects the quality of software to be developed; how the developers relat...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • CoRR

دوره abs/1508.04044  شماره 

صفحات  -

تاریخ انتشار 2015